package com.ruoyi.project.domain;

import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * 项目模板绑定对象 project_template_bind
 *
 * @author ruoyi
 * @date 2025-08-05
 */
@Data
@ApiModel(value = "ProjectTemplateBind", description = "项目模板绑定对象")
public class ProjectTemplateBind extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @ApiModelProperty(value = "主键ID", example = "1", position = 1)
    private Long id;

    /** 关联项目ID */
    @ApiModelProperty(value = "关联项目ID", required = true, example = "100", position = 2)
    @Excel(name = "关联项目ID")
    @NotNull(message = "关联项目ID不能为空")
    private Long projectId;

    /** 项目分类ID */
    @ApiModelProperty(value = "项目分类ID", required = true, example = "1", position = 3)
    @Excel(name = "项目分类ID")
    @NotNull(message = "项目分类ID不能为空")
    private Long projectCategoryId;

    /** 项目模板ID */
    @ApiModelProperty(value = "项目模板ID", required = true, example = "10", position = 4)
    @Excel(name = "项目模板ID")
    @NotNull(message = "项目模板ID不能为空")
    private Long projectTemplateId;

    /** 模板分类编码 */
    @ApiModelProperty(value = "模板分类编码", example = "TEMPLATE_001", position = 5)
    @Excel(name = "模板分类编码")
    @Size(max = 50, message = "模板分类编码长度不能超过50个字符")
    private String projectTemplateCode;

    /** 文件名 */
    @ApiModelProperty(value = "文件名", example = "项目模板文件.docx", position = 6)
    @Excel(name = "文件名")
    @Size(max = 255, message = "文件名长度不能超过255个字符")
    private String fileName;

    /** 文件URL地址 */
    @ApiModelProperty(value = "文件URL地址", example = "https://example.com/files/template.docx", position = 7)
    @Excel(name = "文件URL地址")
    @Size(max = 500, message = "文件URL地址长度不能超过500个字符")
    private String fileUrl;

    /** 操作用户ID */
    @ApiModelProperty(value = "操作用户ID", example = "1", position = 8)
    @Excel(name = "操作用户ID")
    private Long userId;

    /** 所属部门ID */
    @ApiModelProperty(value = "所属部门ID", example = "100", position = 9)
    @Excel(name = "所属部门ID")
    private Long deptId;

}